Mini and mainframe computers are required to process, and hence store, large amounts of information. Fast processing of information requires that the central processing unit of these computers be able to transfer that information at a high rate of speed. The storage medium used to store information will typically be the limiting factor of the transfer rates.
The fastest storage medium in a computer is main memory which is often referred to as cache memory. This is usually in the form of semiconductor dynamic random access memory (DRAM). While main memory is very fast it is also very expensive relative to other forms of storage media and the amount of main memory that can be economically provided falls far short of the overall storage requirements. Main memory use is thus limited to short term storage of currently active information. The remaining information storage requirements are typically handled by peripheral storage devices.
Peripheral storage devices include magnetic tape storage devices, Direct Access Storage Devices (DASD), and optical storage devices. Each of these storage devices has a substantially greater storage density and lower cost than main memory. However, the time to access information from each of these storage devices is also much greater than the access time of information from main memory. For example, main memory is accessed electronically and no mechanical movement is required. Peripheral storage devices, on the other hand, require that a particular area of a tape or disk first be positioned under a read/write head before information accessing can begin.
Some applications must store and retrieve such large amounts of information that many storage devices are required. In these applications the user typically requires a hierarchy of storage that includes some combination of main memory and one or more types of peripheral storage devices. The goal of the hierarchy is to obtain moderately priced high capacity storage while maintaining high speed access to the stored information. Hierarchical storage typically allows information to be transferred between main memory and one or more of the peripheral storage devices or between one or more peripheral storage device and one or more other peripheral storage devices. Further storage is provided by maintaining libraries of data storage media such as tapes, magnetic disks or optical disks that can be mounted onto the existing peripheral devices. However, additional delays of accessing the information is introduced due to the necessity of having to manually locate and then load, for example, an optical disk onto an optical drive.
Automated storage libraries improve the access time to information stored on a tape, magnetic disk, or optical disk contained therein by automatically managing the storage of such tapes and disks. Automated storage libraries include a plurality of storage cells for storing library-resident data storage media, a robotic picker mechanism, and one or more internal peripheral storage devices. Each data storage medium may be contained in a cassette or cartridge housing for easier handling by the picker. The picker operates on command to transfer a data storage medium between a storage cell and an internal peripheral storage device within seconds. A significant improvement in access time to the desired information is provided since the picker mechanism operates much faster to transfer a storage medium than does a manual operation. Still more storage may be provided by including an external shelf for storing additional data storage media which may be manually inserted into the automated storage library.
The improved response time provided by automated storage libraries has made it feasible to store a large number of images as a data type for computer processing. Such images include engineering drawings, financial and insurance documents, medical charts and records, voice data, etc. These images are known as objects in order to identify them as data elements having an unconventional data structure. Text, a conventional data structure, is encoded on a storage medium in streams of binary 1's and 0's of fixed lengths. An object, on the other hand, is a named stream of binary 1's and 0's of a known length. The length of the stream of bits is not fixed but may vary from a few bytes to several megabytes.
Optical disks provide the highest density of the disk storage media and hence an automated optical disk library is most suitable for storing large object databases. Examples of optical disk libraries are given in U.S. Pat. Nos. 4,271,489, 4,527,262 and 4,614,474. Each optical disk in an optical disk library consists of two logical volumes so that there is one volume per side. To access objects on a given volume, that volume is retrieved from the library by the picker and mounted onto an internal optical drive. This may require that a presently mounted volume first be demounted and stored in the library by the picker.
Hundreds of millions of objects can be stored in an automated optical disk library. Efficient management is a necessity given the large number of objects handled. Management is provided by object management software. An example of such object management software is Object Access Method software (OAM). OAM is a subcomponent of an IBM program product, Multiple Virtual Storage/Data Facility Product software (MVS/DFP), which manages the hundreds of millions of objects. OAM keeps an inventory of each object including its location information in an OAM object directory. Library Control System software (LCS) is a subcomponent of OAM for processing a variety of requests affecting the optical disks. Processing the requests requires that the corresponding volume be mounted on an optical drive. If that volume is library-resident the picker automatically moves the optical disk cartridge from the storage area to an optical drive. If the volume is shelf-resident, then mounting is accomplished with human intervention. In cases of shelf-resident volumes, LCS issues a message to an operator regarding the shelf location and the optical drive designated to receive the volume.
LCS performs volume requests which are those requests that affect a volume as a whole. Volume requests include the requests for auditing or defragmenting a volume. A volume is audited by retrieving and mounting that volume for the purpose of verifying that the optical disk cartridge containing the volume is actually present within the library. Defragmenting a volume entails moving data recorded on a volume in order to reduce the number of free extents thereby increasing the size of the free extents. Each free extent consists of one or more adjacent sectors wherein no two free extents are contiguous. Increasing the size of the free extents increases the probability that a file will be able to occupy a single contiguous area. This in turn reduces the time required to read such a file since seek operations to different physical areas of the surface of the volume are not required when sequentially reading a file. Normally there will be relatively few volume requests pending for a given volume.
LCS also performs object requests which are requests to perform an operation on an object. Object requests include requests to read, write, or delete an object from a volume. Write requests further include specific and nonspecific write requests. A specific write request identifies a specific volume to be written to. A nonspecific write request only identifies a storage group from which a volume may be chosen according to a LCS volume selection algorithm. A storage group is a collection of optical disk volumes having some specified attributes in common. Volume selection is determined by choosing the volume having the least amount of available space yet capable of accommodating the object to be written. Deleting an object may be accomplished by simply mounting the volume containing the object to be deleted and deleting the object. Similarly, a read request is serviced by mounting the correct volume and reading the object therefrom. There can be a large number of object requests pending for any one given volume.
Due to the large number of requests that may be queued up in an automated library it is necessary to manage the queued requests efficiently. The manner in which the queued requests are executed has a significant impact on the efficiency of information access. Efficiency can be improved by prioritizing requests according to predetermined attributes, for example, according to the information presently stored in main memory, on a first-in first-out basis, or according to the volumes already mounted in the peripheral devices. These prioritization techniques are described in commonly assigned patent application Ser. No. 07/317,493 filed Mar. 1, 1989. Blount, et al., in U.S. Pat. No. 4,974,197 describe a method of improving the efficiency of writing a Volume Table of Contents (VTOC) and the associated objects to an optical disk by collecting a given number of predetermined objects such that a single access writes the objects and the corresponding VTOC entry.
Mounting a volume, even if done by the robotic picker, is very slow relative to the seek time of an object plus the writing, reading or deleting time of even large objects. Performing many mounts, therefore, substantially slows the servicing of the pending requests. The efficiency of an automated library could be improved by reducing the number of mounts for a given number of volume and object requests.
Thus, what is needed is an automated optical disk library that provides a method of reducing the number of required mounts when deleting objects from optical disks contained therein.